package com.bibrApp.difu.utils;

import android.content.Context;
import android.view.View;

import com.bibrApp.difu.dialog.CustomDialog;


/**
 * Created by ${jaylm}
 * on 2017/12/4.
 */
public class CustomDialogUtils {

    /**
     * 显示单个确定按钮的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveListener 确定按钮的点击事件
     */
    public static void showSingleDialog(Context context, String message, View.OnClickListener positiveListener) {
        showSingleDialog(context, message, "确定", positiveListener);
    }

    /**
     * 显示单个按钮的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveBtnName  按钮的文本
     * @param positiveListener 按钮的点击事件
     */
    public static void showSingleDialog(Context context, String message, String positiveBtnName, View.OnClickListener positiveListener) {
        showSingleDialog(context, "", message, positiveBtnName, positiveListener);
    }

    /**
     * 显示单个按钮的dialog
     *
     * @param context          Context
     * @param title            title
     * @param message          提示内容
     * @param positiveBtnName  按钮的文本
     * @param positiveListener 按钮的点击事件
     */
    public static void showSingleDialog(Context context, String title, String message, String positiveBtnName, View.OnClickListener positiveListener) {
        CustomDialog.Builder builder = new CustomDialog.Builder(context);
        builder.addPositiveButton(positiveBtnName, positiveListener)
                .setMessage(message, CustomDialog.CONTENT_TEXT_TYPE)
                .setTitle(title)
                .show();
    }

    /**
     * 显示确定和取消两个按钮的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveListener 确定按钮的点击事件
     */
    public static void showTwoDialog(Context context, String message, View.OnClickListener positiveListener) {
        showTwoDialog(context, message, "确认", positiveListener);
    }

    /**
     * 显示两个按钮(积极按钮  和  取消)的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 积极按钮的点击事件
     */
    public static void showTwoDialog(Context context, String message, String positiveBtnName, View.OnClickListener positiveListener) {
        showTwoDialog(context, message, positiveBtnName, positiveListener, null);
    }

    /**
     * 显示两个按钮(积极按钮  和  取消)的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 积极按钮的点击事件
     * @param cancelListener   取消按钮的点击事件
     */
    public static void showTwoDialog(Context context, String message, String positiveBtnName, View.OnClickListener positiveListener, View.OnClickListener cancelListener) {
        showTwoDialog(context, "", message, positiveBtnName, positiveListener, cancelListener);
    }

    /**
     * 显示两个按钮(积极按钮  和  取消)的dialog
     *
     * @param context          Context
     * @param title            title
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 积极按钮的点击事件
     * @param cancelListener   取消按钮的点击事件
     */
    public static void showTwoDialog(Context context, String title, String message, String positiveBtnName, View.OnClickListener positiveListener, View.OnClickListener cancelListener) {
        CustomDialog.Builder builder = new CustomDialog.Builder(context);
        builder.addPositiveButton(positiveBtnName, positiveListener)
                .setMessage(message, CustomDialog.CONTENT_TEXT_TYPE)
                .addCancelButton("取消", cancelListener)
                .setTitle(title)
                .show();
    }


    /**
     * 显示带输入框的两个按钮(确定 和 取消)的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveListener 确定按钮的点击事件
     */
    public static void showEditDialog(Context context, String message, CustomDialog.OnEditClickListener positiveListener) {
        showEditDialog(context, message, "确认", positiveListener);
    }

    /**
     * 显示带输入框的两个按钮(确定 和 取消)的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 确定按钮的点击事件
     */
    public static void showEditDialog(Context context, String message, String positiveBtnName, CustomDialog.OnEditClickListener positiveListener) {
        showEditDialog(context, message, positiveBtnName, positiveListener, null);
    }


    /**
     * 显示带输入框的两个按钮(积极按钮和取消)的dialog
     *
     * @param context          Context
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 积极按钮的点击事件
     * @param cancelListener   取消按钮的点击事件
     */
    public static void showEditDialog(Context context, String message, String positiveBtnName, CustomDialog.OnEditClickListener positiveListener, View.OnClickListener cancelListener) {
        showEditDialog(context, "", message, positiveBtnName, positiveListener, cancelListener);
    }

    /**
     * 显示带输入框的两个按钮(积极按钮和取消)的dialog
     *
     * @param context          Context
     * @param title            title
     * @param message          提示内容
     * @param positiveBtnName  积极按钮的文本
     * @param positiveListener 积极按钮的点击事件
     * @param cancelListener   取消按钮的点击事件
     */
    public static void showEditDialog(Context context, String title, String message, String positiveBtnName, CustomDialog.OnEditClickListener positiveListener, View.OnClickListener cancelListener) {
        CustomDialog.Builder builder = new CustomDialog.Builder(context);
        builder.addPositiveButton(positiveBtnName, positiveListener)
                .setMessage(message, CustomDialog.CONTENT_EDIT_TYPE)
                .addCancelButton("取消", cancelListener)
                .setTitle(title)
                .show();
    }
}
